package cc.mrbird.febs.buss.service;

import cc.mrbird.febs.buss.entity.HallItem;

import cc.mrbird.febs.buss.entity.MainItem;
import cc.mrbird.febs.buss.entity.SumItem;
import cc.mrbird.febs.common.entity.QueryRequest;
import cc.mrbird.febs.system.entity.Dept;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.apache.poi.ss.usermodel.Row;

import java.util.HashMap;

import java.util.List;
import java.util.Map;

/**
 *  Service接口
 *
 * @author Lujingyuan
 * @date 2020-04-24 09:00:57
 */
public interface IHallItemService extends IService<HallItem> {

    /**
     * 查询（所有）
     *
     * @param hallItem hallItem
     * @return List<HallItem>
     */
    List<HallItem> findHallItems(HallItem hallItem);
    IPage<HallItem> findHallItemDetail(QueryRequest request, HashMap<String,String> map);
    /**
     * 新增
     *
     * @param hallItem hallItem
     */
    void createHallItem(HallItem hallItem);

    /**
     * 修改
     *
     * @param hallItem hallItem
     */
    void updateHallItem(HallItem hallItem);

    /**
     * 删除
     *
     * @param hallItem hallItem
     */
    void deleteHallItem(HallItem hallItem);

    /**
    * 删除
    * @param ids
    */
    void deleteHallItem(String[] ids);

    public Dept findDeptByItem(Long itemId);

    public List<HallItem> findHallItemByMap(Map map);

    /**
     * 根据名称获取唯一部门，如果没有部门，则新增一个部门并返回
     * @param deptName
     * @return
     */
    Dept getDept(String deptName);

    /**
     * 根据名称获取唯一主项，如果没有主项，则新增一个主项并返回
     * @param name
     * @return
     */
    MainItem getMainItem(String name,Dept dept);

    /**
     * 根据名称获取唯一子项，如果没有子项，则新增一个子项并返回
     * @param name
     * @return
     */
    SumItem getSumItem(String name,MainItem mainItem);


    /**
     * 根据excel一行数据插入事项到表
     * @param row
     */
    void addItemByRow(Row row);
}
